home *** CD-ROM | disk | FTP | other *** search
- /*
- File: BufferDescriptor.h
-
- Copyright: © 1991-1994 by Apple Computer, Inc.
- All rights reserved.
-
- Part of the AOCE Sample SMSAM Package. Consult the license
- which came with this software for your specific legal rights.
-
- */
-
-
-
- #ifndef __BUFFERDESCRIPTOR__
- #define __BUFFERDESCRIPTOR__
-
- #ifndef __DIRECTOBJECT__
- #include "DirectObject.h"
- #endif
-
- #pragma push
- #pragma segment BufferDescriptor
-
- /***********************************|****************************************/
-
- class TBufferDescriptor : TDirectObject
- {
- public: TBufferDescriptor (long bufferSize); // allocate a buffer of size bufferSize, dataSize = nil
- TBufferDescriptor (long bufferSize, void *buffer, long dataSize = 0); // use buffer as buffPtr, bufferSize as buffSize, dataSize
- virtual ~TBufferDescriptor();
-
- BufferDescriptor* BufferDescriptorPtr() const;
- void* BufferPtr() const;
- long BufferSize() const;
- long DataSize() const;
- void SetDataSize (long newDataSize);
-
- virtual ostream& operator >> ( ostream& ) const;
-
- private: BufferDescriptor fBuf;
- Boolean fAllocatedBuffPtrWithNewPtr;
- };
-
- /***********************************|****************************************/
-
- inline BufferDescriptor* TBufferDescriptor::BufferDescriptorPtr() const { return &fBuf; };
- inline void* TBufferDescriptor::BufferPtr() const { return fBuf.buffPtr; };
- inline long TBufferDescriptor::BufferSize() const { return fBuf.buffSize; };
- inline long TBufferDescriptor::DataSize() const { return fBuf.dataSize; };
-
- /***********************************|****************************************/
-
- #pragma pop
-
- #endif // __BUFFERDESCRIPTOR__